package cn.tedu.car.backend.customer.dao.repository;

import cn.tedu.car.backend.base.response.PageData;
import cn.tedu.car.backend.customer.pojo.dto.CustomerQueryParam;
import cn.tedu.car.backend.customer.pojo.entity.Customer;
import cn.tedu.car.backend.customer.pojo.vo.CustomerDetailVo;
import cn.tedu.car.backend.customer.pojo.vo.CustomerListVo;
import lombok.extern.slf4j.Slf4j;

import java.util.List;

/**
 * @author LLY
 */
public interface CustomerRepository {
    /**
     * 获取客户列表
     * @param param 查询条件
     * @return 客户列表
     */
    PageData list(CustomerQueryParam param);

    /**
     * 根据用户名查询客户信息
     *
     * @param username 用户名
     * @return 客户信息
     */
    Customer getCustomerByUsername(String username);

    /**
     * 添加客户
     *
     * @param customer 客户信息
     */
    void insert(Customer customer);

    /**
     * 根据手机号查询客户信息
     *
     * @param phone 手机号
     * @return 客户信息
     */
    Customer getCustomerByPhone(String phone);

    /**
     * 根据id查询客户信息
     *
     * @param customerId 客户id
     * @return 客户信息
     */
    Customer getCustomerById(Long customerId);

    /**
     * 更新客户信息
     *
     * @param customer 客户信息
     */
    void update(Customer customer);

    /**
     * 根据id查询客户详情
     *
     * @param id 客户id
     * @return 客户详情
     */
    CustomerDetailVo getCustomerDetailById(Long id);
}
